/*================================================================
*   Copyright (C) 2024 baichao All rights reserved.
*
*   文件名称：on_exit.c
*   创 建 者：baichao
*   创建日期：2024年03月31日
*   描    述：
*
================================================================*/

#include <stdio.h>
#include <stdlib.h>

void cleanup1() {
  printf("Cleanup 1 called\n");
}

void cleanup2(int status, void *arg) {
  printf("Cleanup 2 called with status: %d, arg: %p\n", status, arg);
}

int main() {
  // 使用 on_exit 函数注册终止处理函数
  on_exit(cleanup1, NULL);
  on_exit(cleanup2, (void *)0x12345678);

  printf("Main function executing\n");
  // 这里可以添加一些其他逻辑

  // return是一种更常见的终止进程的方法。
  // 执行return（n）等同于执行exit（n），因为调用main（）的运行时函数会将main的返回值当作exit的参数。
  return 0;
}
